package com;

import com.solution.greed.Solution;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

/*
给你一个非负整数数组nums ，你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

假设你总是可以到达数组的最后一个位置。


示例 1:

输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
    从下标为 0 跳到下标为 1 的位置，跳1步，然后跳3步到达数组的最后一个位置。
示例 2:

输入: nums = [2,3,0,1,4]
输出: 2


提示:

1 <= nums.length <= 104
0 <= nums[i] <= 1000

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/jump-game-ii
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test {
    public static void main(String[] args) {
        List<int[]> testArray = new ArrayList<>(3);
        testArray.add(new int[]{2, 3, 1, 1, 4});
        testArray.add(new int[]{2, 3, 0, 1, 4});
        testArray.add(new int[]{3, 2, 1});

        List<Integer> answer = new ArrayList<>(3);
        answer.add(2);
        answer.add(2);
        answer.add(1);

        int total_case = testArray.size();
        int success_case = 0;
        Solution solution = new Solution();
        for ( int i = 0 ; i < total_case ; i++ ) {
            int result = solution.jump(testArray.get(i));
            if ( result == answer.get(i) )
                success_case++;
        }

        DecimalFormat df = new DecimalFormat();
        df.setMaximumFractionDigits(2);
        df.setMinimumFractionDigits(2);
        String percentage = df.format((double) success_case / total_case * 100.00) + "%";
        System.out.println("测试案例通过率：" + percentage);

    }
}
